home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / SYSINFO.D < prev    next >
Encoding:
Modula Definition  |  1990-12-11  |  3.3 KB  |  98 lines

  1. DEFINITION MODULE SysInfo;
  2.  
  3. (*
  4.  * Liefert Informationen über den Rechner und seine Hardware:
  5.  *   CPU (Hauptprozessor)
  6.  *   FPU (Mathe-Koprozessor)
  7.  *   Rechner (Atari ST/STE/TT)
  8.  *   TOS-Version
  9.  *)
  10.  
  11. FROM MOSGlobals IMPORT Date;
  12.  
  13.  
  14. PROCEDURE CPU (): LONGCARD;
  15.   (*
  16.    * Informiert über den Hauptprozessor (CPU) im Rechner:
  17.    * Zur Zeit werden folgende Werte geliefert:
  18.    *  68000  bei der CPU, die in den 520 ST, 1024 ST, Mega ST enthalten ist;
  19.    *  68020  wenn z.B. die PAK-Karte vom Heise-Verlag eingebaut ist;
  20.    *  68030  beim Atari TT (die 68030 enthält eine 68020, sowie eine MMU).
  21.    * Eine 68010 wird hier nicht erkannt (dann wird 68000 geliefert!)
  22.    *
  23.    * Die Erkennung erfolgt durch Testen der CPU-Befehle und nicht über einen
  24.    * evtl. vorhandenen Cookie (s. Modul CookieJar).
  25.    *)
  26.  
  27. PROCEDURE UseStackFrame (): BOOLEAN;
  28.   (*
  29.    * Liefert TRUE, wenn eine 68010, 68020 oder höher, verwendet wird.
  30.    * Das bedeutet dann, daß bei Exception-Routinen ein extra Stackframe-
  31.    * Word auf dem Stack liegt.
  32.    *
  33.    * Diese Routine ist daher für solche Anwendungen der 'CPU()'-Funktion
  34.    * vorzuziehen, weil 'CPU' beispielsweise bei einer 68010 '68000'
  35.    * liefert, jedoch trotzdem das StackFrame-Word benutzt wird!
  36.    *
  37.    * Die Erkennung erfolgt durch Testen der CPU-Befehle und nicht über einen
  38.    * evtl. vorhandenen Cookie (s. Modul CookieJar).
  39.    *)
  40.  
  41. PROCEDURE Has020 (): BOOLEAN;
  42.   (*
  43.    * Liefert TRUE, wenn 'CPU () >= 68020' ist.
  44.    *
  45.    * Diese Abfrage sollte verwendet werden, um zu ermitteln, ob der
  46.    * erweiterte Befehlssatz der 68020 / 68030 verwendet werden kann,
  47.    * ohne, daß auf die speziellen MMU-Befehle/Register der 68030
  48.    * zugegriffen wird.
  49.    *
  50.    * Die Erkennung erfolgt durch Testen der CPU-Befehle und nicht über einen
  51.    * evtl. vorhandenen Cookie (s. Modul CookieJar).
  52.    *)
  53.  
  54. TYPE FPUType = (noFPU, externalFPU, internalFPU);
  55.  
  56. PROCEDURE FPU (): FPUType;
  57.   (*
  58.    * Informiert über einen evtl. vorhandenen Mathe-Koprozessor.
  59.    * 'noFPU': Kein Koprozessor vorhanden.
  60.    * 'externalFPU': Es ist ein 68881/882 vorhanden, der über die von Atari
  61.    *   definierten Peripherie-Adressen angesprochen wird (z.B. der
  62.    *   Koprozessor SFP004 von Atari für die Mega-ST Computer oder diverse
  63.    *   68881 zum Einbau in alle STs von Fremdherstellern)
  64.    * 'internalFPU': Es ist ein 68881/882 vorhanden, der direkt über erweiterte
  65.    *   Maschineninstruktionen der 68020/30 angesprochen wird (z.B. der 68881
  66.    *   als Erweiterung zur PAK 68020).
  67.    *
  68.    * Die Erkennung erfolgt durch Testen der CPU-Befehle und nicht über einen
  69.    * evtl. vorhandenen Cookie (s. Modul CookieJar).
  70.    *)
  71.  
  72. PROCEDURE FPUModel (): CARDINAL;
  73.   (*
  74.    * Liefert 1 für 68881, 2 für 68882.
  75.    *
  76.    * Die Erkennung erfolgt durch Testen der CPU-Befehle und nicht über einen
  77.    * evtl. vorhandenen Cookie (s. Modul CookieJar).
  78.    *)
  79.  
  80. PROCEDURE GetTOSVersion (VAR version, revision: CARDINAL;
  81.                          VAR date: Date);
  82.   (*
  83.    * Beim Blitter-TOS (TOS 1.2) werden z.B. folgende Werte geliefert:
  84.    *   version:  1
  85.    *   revision: 2
  86.    *   date:     22.4.1987
  87.    *)
  88.  
  89. PROCEDURE Machine (): CARDINAL;
  90.   (*
  91.    * Liefert den Rechnertyp. Werte:   ST: 0, STe: 1, TT: 2.
  92.    *
  93.    * Die Erkennung erfolgt über den Cookie "_MCH". Ist er nicht vorhanden,
  94.    * wird Null geliefert.
  95.    *)
  96.  
  97. END SysInfo.
  98.